﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Simhopp.Model;

namespace Simhopp.GUI
{

    public delegate void DelegateAddDiver(Diver diver);
    public delegate void DelegateRemoveDiver(Diver diver);
    public delegate void DelegateUpdateDiver(Diver originalDiver, Diver updatedDiver);

    public delegate void DelegateAddDive(Dive dive);
    public delegate void DelegateRemoveDive(Dive dive);

    public delegate List<Diver> DelegateGetDiverList();
    public delegate List<Dive> DelegateGetDiveList();
    public delegate List<Dive> DelegateGetAllDivesFromDatabase();

    public delegate List<Diver> DelegateUpdateDiverList();
    public delegate void DelegateAddExistingDiver(Diver diver);
    public delegate void DelegateUpdateCompleteDiverList(List<Diver> diverList);
 
    public interface InterfaceEditDiverView
    {
        event DelegateAddDiver EventAddDiver;
        event DelegateRemoveDiver EventRemoveDiver;
        event DelegateUpdateDiver EventUpdateDiver;

        event DelegateAddDive EventAddDive;
        event DelegateRemoveDive EventRemoveDive;
        event DelegateGetDiverList EventGetDiverList;
        event DelegateGetDiveList EventGetDiveList;
        event DelegateGetAllDivesFromDatabase EventGetAllDivesFromDatabase;

        event DelegateUpdateDiverList EventUpdateDiverList;
        event DelegateAddExistingDiver EventAddExistingDiver;
        event DelegateUpdateCompleteDiverList EventUpdateCompleteDiverList;
    }
}
